﻿using Adnc.Application.Shared.Interceptors;
using Adnc.Application.Shared.Services;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using WYT.Pay.Application.Contracts.Dtos.Payment;

namespace WYT.Pay.Application.Contracts.Services
{
    /// <summary>
    /// 
    /// </summary>
    public interface IPaymentAppService : IAppService
    {
        /// <summary>
        /// 订单支付处理
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [UnitOfWork]
        Task<AppSrvResult> OrderPayHandle(OrderPayDto input);

        /// <summary>
        /// 创建支付单
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<AppSrvResult<long>> CreateOrderPay(long userId, OrderPayCreateDto input);
        /// <summary>
        /// 支付单超时检查
        /// </summary>
        /// <returns></returns>
        Task<AppSrvResult> PaymentOrderTimeoutCheck();
    }
}
